# -*- coding: utf-8 -*-
from Escena import Escena
from heroe import Heroe
from objetos.Agua import Agua
from objetos.Algodon import Algodon
from objetos.Frasco import Frasco
from objetos.Vaso import Vaso
from objetos.Grano import Grano
from objetos.Bolsa import Bolsa
from objetos.Sobre import Sobre
class frijolero(Escena):
    
    """
    Escena de un jardin. El problema consiste en sembrar un frijol en algodon
    @since: 4/14/2011
    @version: 1.0
    """
    
    def __init__(self):
        """
        Constructor
        @type    self: frijolero
        @param    self: referencia al objeto frijolero actual
        """         
        bolsa=Bolsa(nombre='bolsa', imagen="bolsaFrijol.png")
        granoFrijol=Grano(nombre='frijol', contenedor=bolsa)
        bolsa.tener(granoFrijol)
        bolsa.setPosicion([100, 100])
        
        vaso=Vaso('vaso')
        agua=Agua(nombre='agua', contenedor=vaso)
        vaso.tener(agua)
        vaso.setPosicion([200, 200])
        
        sobre=Sobre(nombre='sobrecito', imagen="bolsasalgodon.png")
        algodon=Algodon(nombre='algodon', contenedor=sobre)
        sobre.tener(algodon)
        sobre.setPosicion([300, 300])
        
        frasco=Frasco('frasco')
        frasco.setPosicion([100, 300])
        
        objetos={'vaso': vaso, 'sobrecito': sobre, 'bolsa': bolsa, 'frasco': frasco}
        

        #Set background
        self.setBackgound("imagenes/background/jardin.png");

        # Construccion del heroe
        heroe_jardin = Heroe.Heroe("")
        heroe_jardin.setImagen("imagenes/heroe.png")
        heroe_jardin.setPostura(0)
        heroe_jardin.setX(210)
        heroe_jardin.setY(370)
        desc ="""<h1>Sembrar fr&iacute;jol</h1>
			   <p width='400px'>Debes sembrar un frijol en algod&oacute;n.</p>
			   &iquest;C&oacute;mo lo har&iacute;as?</h3>"""
			   
        Escena.__init__(self, 'frijolero',desc, objetos, '', heroe_jardin)
        
    def califica(self):
        """
        Metodo para evaluar el progreso en la solucion del problema.
        @type    self: frijolero
        @param    self: referencia al objeto frijolero actual
        """
        tor = []
        objetos = self.getDiccionarioObjetos()
            
        if not self.cumpleContieneNombre(objetos['frasco'], 'algodon'):
            tor.append("No has puesto el algodón dentro del frasco.")
            
        if not self.cumpleContieneNombre(objetos['algodon'], 'frijol'):
            tor.append("No hay frijoles dentro del algodón.")
            
        if not self.cumpleContieneNombre(objetos['algodon'], 'agua'):
            tor.append("No has vertido con agua el algodón.")
        
        return tor
